# -*- coding: utf-8 -*-

#lambda x, func = lambda x, func: x and x * func(x - 1, func) or 1: func(x, func) 采用匿名函数的方式在内部注册一个局部函数来额外替代需要调用的外部函数如：
#func = lambda x: x and x * func(x - 1) or 1
print reduce(lambda x, y: x + y, map(lambda x, func = lambda x, func: x and x * func(x - 1, func) or 1: func(x, func), range(1, 6)))
